Macros to calculate constant hash bytes result.
Macros from this crate does apply a specific hash function on input.
Input can be literal byte array as `b"content"` or array of bytes
as `[1, 2, 3]`.
Rust identifier can also be use, in this case we use their utf8 string
byte representation, for instance if the ident is `MyStruct`, then
`b"MyStruct"` will be hashed.
If multiple arguments comma separated are passed, they are concatenated
then hashed.
Examples:
```rust
assert_eq!(
sp_core_hashing_proc_macro::blake2b_256!(b"test"),
sp_core_hashing::blake2_256(b"test"),
);
assert_eq!(
sp_core_hashing_proc_macro::blake2b_256!([1u8]),
sp_core_hashing::blake2_256(&[1u8]),
);
assert_eq!(
sp_core_hashing_proc_macro::blake2b_256!([1, 2, 3]),
sp_core_hashing::blake2_256(&[1, 2, 3]),
);
assert_eq!(
sp_core_hashing_proc_macro::blake2b_256!(identifier),
sp_core_hashing::blake2_256(b"identifier"),
);
assert_eq!(
sp_core_hashing_proc_macro::blake2b_256!(identifier, b"/string"),
sp_core_hashing::blake2_256(b"identifier/string"),
);
```